package com.shuda.business.distribution.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.shuda.common.entity.BaseEntity;

/**
 * 分发方案实体类：移除Lombok，显式提供访问器，避免方法引用失效。
 */
@TableName("t_distribution_scheme")
public class DistributionSchemeEntity extends BaseEntity {

    /**
     * 方案名称
     */
    private String schemeName;

    /**
     * 方案描述
     */
    private String description;

    /**
     * 上游渠道ID
     */
    private Long upstreamChannelId;

    /**
     * 下游渠道ID
     */
    private Long downstreamChannelId;

    /**
     * 分发策略 (priority: 优先级, weight: 权重, round_robin: 轮询)
     */
    private String distributionStrategy;

    /**
     * 优先级
     */
    private Integer priority;

    /**
     * 权重
     */
    private Integer weight;

    /**
     * 状态 (0: 禁用, 1: 启用)
     */
    private Integer status;

    /**
     * 创建人ID
     */
    private Long createdBy;

    /**
     * 更新人ID
     */
    private Long updatedBy;

    /**
     *
     * DistributionSchemeEntity访问器
     * @param $params$
     * @return $returns$
     * @author ink
     * @Description: 明确提供getter/setter，匹配Service层Lambda方法引用
     * @date 2025-11-09 11:02
     */
    public String getSchemeName() { return schemeName; }
    public void setSchemeName(String schemeName) { this.schemeName = schemeName; }

    public String getDescription() { return description; }
    public void setDescription(String description) { this.description = description; }

    public Long getUpstreamChannelId() { return upstreamChannelId; }
    public void setUpstreamChannelId(Long upstreamChannelId) { this.upstreamChannelId = upstreamChannelId; }

    public Long getDownstreamChannelId() { return downstreamChannelId; }
    public void setDownstreamChannelId(Long downstreamChannelId) { this.downstreamChannelId = downstreamChannelId; }

    public String getDistributionStrategy() { return distributionStrategy; }
    public void setDistributionStrategy(String distributionStrategy) { this.distributionStrategy = distributionStrategy; }

    public Integer getPriority() { return priority; }
    public void setPriority(Integer priority) { this.priority = priority; }

    public Integer getWeight() { return weight; }
    public void setWeight(Integer weight) { this.weight = weight; }

    public Integer getStatus() { return status; }
    public void setStatus(Integer status) { this.status = status; }

    public Long getCreatedBy() { return createdBy; }
    public void setCreatedBy(Long createdBy) { this.createdBy = createdBy; }

    public Long getUpdatedBy() { return updatedBy; }
    public void setUpdatedBy(Long updatedBy) { this.updatedBy = updatedBy; }
}